package com.ken.apollo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ken.apollo.domain.bo.AdminLoginBo;
import com.ken.apollo.domain.bo.ChangePasswordBo;
import com.ken.apollo.domain.entity.AdminUser;
import com.ken.apollo.domain.vo.AdminUserVo;

/**
 * 管理员用户Service接口
 *
 * @author Ken
 * @since 2025-08-25
 */
public interface AdminUserService extends IService<AdminUser> {
    
    /**
     * 管理员登录
     * 
     * @param loginBo 登录参数
     * @param clientIp 客户端IP
     * @return 用户信息
     */
    AdminUserVo login(AdminLoginBo loginBo, String clientIp);
    
    /**
     * 根据用户名查询用户
     * 
     * @param username 用户名
     * @return 用户信息
     */
    AdminUser getByUsername(String username);
    
    /**
     * 修改密码
     * 
     * @param userId 用户ID
     * @param changePasswordBo 修改密码参数
     * @return 是否成功
     */
    boolean changePassword(Long userId, ChangePasswordBo changePasswordBo);
    
    /**
     * 更新最后登录信息
     * 
     * @param userId 用户ID
     * @param clientIp 客户端IP
     */
    void updateLastLoginInfo(Long userId, String clientIp);
}